home *** CD-ROM | disk | FTP | other *** search
-
- Revision history of TPTC
- ------------------------
-
- 09/09/85 v0.0 (paspp)
- Initial coding by Samuel H. Smith. Never released.
-
- 12/19/86 v1.0
- First distributed as TPC10 under shareware concept.
-
- 04/15/87 v1.1
- Corrected handling of unary minus. Improved error messages; added
- error messages to object file. Added handler for integer subrange
- types. Added handling for goto statement and numeric labels. The
- macro header, tpcmac.h, now contains more declarations. Distributed
- as TPC11.
-
- 04/22/87 v1.2
- Corrected an error that led to a crash on lines with more than 40
- leading spaces. Distributed as TPC12.
-
- 05/20/87 v1.3
- Added support for pascal/MT+: external procedures and variables,
- special write/read indirect syntax, & and ! operators, default string
- size for string declarations. Distributed as TPC13.
-
- 05/26/87 v1.4
- Additional support for pascal/MT+. The translator "shifts" into a
- MT+ specific mode when it recognizes the 'MODULE' statement. The '|'
- operator is recognized for bitwise OR. The '\', '?' and '~' operators
- are all translated into a unary not. Read(ln) and Write(ln) now
- support the special case of "[]" for the I/O routine. Long integer
- literals are translated from '#nnn' to 'nnnL'
-
- 06/01/87 v1.5
- Added new command-line parser. Added -lower option to map identifiers
- to lower case. Added -mt option to force pascal/mt+ mode. Added
- partial var-parameter translation. Mem, MemW, Port and PortW are all
- translated into Turbo C. Turbo-c procedure declaration syntax is now
- used. Arrays may now be subscripted by enumeration types. Null else
- clause now handled properly in IF and CASE statements. For .. downto
- is now translated correctly. The VAL..VAL form is now translated in
- case statements.
-
- ---------------
- -- detect concat(concat... and replace with a sprintf variant
- -- changed sprintf calls to sbld calls to preserve sources during build
- -- pos(c,str) and pos(str,str) are now separately translated
- -- added 'base' to symbol table; use to add base-subscript offset
- in all subscript references.
- -- moved typename translations to tpcmac.h header
- -- fixed bug in non-translation of tshell directives
- -- forward pointer declarations
- -- translate inline into asm statements
- -- complete forward translation
-
- 10/13/87
- -- improved string and array parameter translations
- -- string returns are now translated into char *
-
- 10/15/87
- -- corrected error in typed constant translation where nested records
- are initialized.
- -- variant record declarations are translated into unions but no variant
- expression translations are done.
- -- changed nested procedure error messages to include procedure name.
-
- ---------------
- 02/13/88 v1.6
- Converted to TPAS 4.0 format; released under the SourceWare concept
- (see README and LICENSE.DOC).
-
- ---------------
- 03/10/88 v1.6a
- -- corrected recent errors in #include translation and -include processing.
- -- changes in status display and error message formats.
- -- translation of multi-dimensional and nested array declarations.
- -- translation of untyped var parameters.
- -- partial translation of absolute variable declarations.
- -- improved data type declaration in expressions with subscripts.
-
- 03/11/88
- -- new method of expression type tracking; type botching is greatly
- reduced while speeding execution.
- -- rewrote include file handler to allow nested includes.
-
- 03/12/88
- -- implemented proper procedure ordering for nested procedures (inmost
- procedures are output first, followed by outer procedures).
- -- shortened command-line options to single letters.
- -- added -W option to allow specification of a RAMDISK for work files.
-
- 03/13/88
- -- added translation of :(expression) parameters in write statements.
- -- corrected translation of 'actual' VAR and untyped parameters.
- -- improved type detection in record member references.
- -- created 'uninc' postprocessor to split up output into original
- include files (placed in a user specified destination directory).
- -- added 't2c.bat' batch file to combine translation and include processing.
- -- added code to ignore tp4.0 interface sections.
-
- 03/14/88
- -- improved indentation in generated code for variant record decls (remember,
- tptc is NOT a pretty printer! use CB or INDENT to get pretty indentation).
-
- 03/15/88
- -- added boolean as a basic type; this allows automatic selection of &, |
- and &&, || in expressions.
- -- implemented translation for 'str' standard procedure.
- -- partial translation of 'val' procedure.
- -- better implementation of subscript base value translation.
- -- better type tracking in subscripted variables.
-
- 03/16/88
- -- added macros for paramcount and paramstr instead of specific translations.
- -- corrected implementation of mt+ translation for write([proc],...) form.
- -- added unique prefix on local #define's to prevent name clashes.
- -- added specific translations for \r, \n, \b, \e character constants.
- -- added translation for intr() and msdos() calls.
- -- implemented constant folding in trivial cases where index bases are added.
- -- added translation of @(...) operator.
-
- 03/17/88
- -- corrected translation of pointers to simple types.
- -- improved translation of character and numeric subrange types.
- -- partial translation of set expressions.
- -- corrected enumeration-type subscript range calculation.
- -- added -Tnn command option to control tabstops in declarations.
- -- changes in symbol table and parser for 20% faster operation.
-
- 03/18/88
- -- disable '#...' translation (tshell passing) without -# option.
- -- exit all nested procs in fatal error handler.
- -- added symbol table entries for 'builtin' procedure translations (allows
- user redefinition of 'pos', for example).
- -- predefined symbol table entries are reported only if -DP option is used.
- -- partial translation of 'with' statements.
-
- 03/19/88
- -- slight improvement in recovery from syntax errors.
- -- corrected parsing of initialized set constants.
-
- 03/21/88
- -- added -B option for deBug trace while scanning source file.
- -- changed numeric character literals from octal to hex.
- -- added warning if pascal string length byte is used in expressions.
- -- implemented translation of ^c^c (multiple control character literals).
- -- eliminated recursion in scanning consecutive comments.
- -- added specific translations for \a, \f, \t, \v character literals.
- -- corrected translation of ^., ^[, and #$hex character literals.
- -- added ".pas" default on include filenames.
- -- corrected translation of "external 'file.ext'..." procedure option.
-
- 03/22/88
- -- corrected parsing error that could cause lockup at end of translation.
- -- added translation from chr(lit) to character literals where possible.
- -- allowed redefinition of 'exit' procedure.
- -- corrected empty case statement and empty then-before-else translation.
- -- corrected &* possibility in fscanv.
- -- improved output format in inline translation.
- -- added -BP option for deBug trace of statement Parsing.
- -- implemented proper local symbol tables in nested functions.
-
- 03/23/88
- -- corrected translation of :(expr) in write when expr starts with a digit.
- -- added runtime check for too many procedure parameters.
- -- better handling of nested with statements.
- -- partial translation of with dependant expressions.
- -- changed constant declarations from #define to 'const' to allow full
- scoping rules. (this doesn't work with tc1.0!)
-
- 03/24/88
- -- partial translation of expressions accessing variant record members.
- -- better handling of forward redeclarations that are incomplete.
- -- implemented translation of TP4 units
- -- 'interface' section creates .UNS file with TPTC symbol table
- information saved for later use.
- -- 'interface' section creates .UNH header file for inclusion
- in C sources using the unit
- -- 'uses' section generates include of .UNH header and loads
- the .UNS data into the current symbol table
- you must translate SYSTEM.DOC, DOS.DOC, etc, before units USING these
- can be translated.
- -- implemented translations for $DEFINE, $IFDEF, $IFNDEF, $ELSE and $ENDIF.
- -- moved standard symbol table entries to the special unit TPTCSYS.PAS,
- which is implicitly "used" in each translation. TPTCSYS.UNS must be
- in the default directory when TPTC is called. this eliminates the need
- for special translations for val, intr, msdos and many other standard
- procedures with VAR parameters.
- -- implemented translation of 'inline' procedures (tp4).
-
- ---------------
- 03/25/88 v1.7
- -- repackaged into three archives: tptc17 (main file; translator, docs and
- supporting files), tptc17sc (source code), tptc17tc (test cases).
- -- cosmetic changes in code generation for interface sections.
- -- implemented 'as new_name' clause for specification of a different
- procedure/function name in the translated code (see tptcsys.pas).
- -- inline procedures in an interface section generate a warning since
- they cannot be translated in this context.
- -- added -Sdir option to specify a search directory for .UNS symbol files
- that are not in the default directory.
- -- default command-line options can be specified through the TPTC
- environment variable from dos.
-
- 03/26/88
- -- changes in $i parsing (fixed case where '$i fxxx' parsed as '$ifdef xxx')
- -- changed untyped constants back to #defines despite the scoping problems
- (sure wish borland had fully implemented 'const' declarations).
- -- corrected translation of 'type mine = ^simple' where simple is already
- defined (tptc was doing a forward-type translation sometimes).
-
-